﻿using System;
using System.Collections.Generic;
using System.Text;

using SH;

namespace MTS
{
	public interface ImtDMSServerCallback	: ImtCallback
	{
		const int _classID = 7982;
		const string _interfaceName = "mtDMSServerCallback";
		const int DMSServerScanRequest = 10;
		const int DMSServerSceneStepInfo = 11;
		const int DMSServerScanStepInfo = 12;
		const int DMSServerCalibStepInfo = 13;
		const int DMSServerAutoDiagStepInfo = 14;
		const int DMSServerAutoDiagReport = 15;
		const int DMSServerStationRunStatus = 16;

		//from SCS
		[mtFuncID("DMSServerScanRequest", DMSServerScanRequest)]
		shErrorCode OnScanRequest(string token, mtScanRequest request, out mtScanResponse response);

		[mtFuncID("DMSServerSceneStepInfo", DMSServerSceneStepInfo)]
		shErrorCode OnSceneStepInfo(string token, mtSceneStepInfo info);

		[mtFuncID("DMSServerScanStepInfo", DMSServerScanStepInfo)]
		shErrorCode OnScanStepInfo(string token, mtScanStepInfo info);

		[mtFuncID("DMSServerCalibStepInfo", DMSServerCalibStepInfo)]
		shErrorCode OnCalibStepInfo(string token, mtCalibStepInfo info);

		[mtFuncID("DMSServerAutoDiagStepInfo", DMSServerAutoDiagStepInfo)]
		shErrorCode OnAutoDiagStepInfo(string token, mtAutoDiagStepInfo info);

		[mtFuncID("DMSServerAutoDiagReport", DMSServerAutoDiagReport)]
		shErrorCode OnAutoDiagReport(string token, mtAutoDiagReport info);

		// shErrorCode OnDeviceOpInfo( string token,  mtDeviceOpInfo info);
		
		[mtFuncID("DMSServerStationRunStatus", DMSServerStationRunStatus)]
		shErrorCode OnStationRunStatus(string token, mtGStationRunStatusInfo info);


	};

	public interface ImtDMSServer : Imt
	{

		//to SCS
		shErrorCode SceneRequest(string token, mtSceneRequest req, out mtSceneResponse rsp);

		shErrorCode CalibRequest(string token, mtCalibRequest req, out mtCalibRespone rsp);

		shErrorCode AimingRequest(string token, mtAimingRequest req);

		shErrorCode AutoDiagRequest(string token, mtAutoDiagRequest req, out mtAutoDiagResponse rsp);

		shErrorCode DiagVehicleRequest(string token, mtDiagVehicleRequest req, out mtDiagVehicleResponse rsp);

		shErrorCode DiagDetectorRequest(string token, mtDiagDetectorRequest req, out mtDiagDetectorResponse rsp);

		shErrorCode DiagSourceRequest(string token, mtDiagSourceRequest req, out mtDiagSourceResponse rsp);

		shErrorCode SaveRawOriData(string token, mtSaveRawOriData data);

		shErrorCode GetDeviceOpInfo(string token, out mtDeviceOpInfo info);

		shErrorCode ResetCmd(string token, mtResetCmdInfo info);

		shErrorCode NotifyCargoInfo(string token, mtCargoCountInfo info);

		shErrorCode MaintainRequest(string token, mtMaintainRequest req, out List<mtMaintainResponse> listRsp);  //获取维护保养计数类硬件信息（如总的运行时长）

		shErrorCode DiagProtectiveDoorRequest(string token, mtDiagProtectiveDoorRequest req, out mtDiagProtectiveDoorResponse rsp);

		shErrorCode DiagTransferTransportPlatformRequest(string token, DiagTransferTransportRequest req, out DiagTransferTransportResponse rsp);
	}


}
